package com.shenke.user.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.shenke.user.model.dto.UserRegisterRequest;
import com.shenke.user.model.entity.User;
import com.baomidou.mybatisplus.extension.service.IService;
import com.shenke.user.model.vo.UserVO;

import java.util.List;

/**
* @author 86180
* @description 针对表【users】的数据库操作Service
* @createDate 2025-06-16 11:03:08
*/
public interface UserService extends IService<User> {

    /**
     * 用户注册
     * @param userRegisterRequest
     * @param idAddress
     * @return
     */
    long userRegister(UserRegisterRequest userRegisterRequest, String idAddress);

    /**
     * 用户登录
     * @param phone
     * @param password
     * @param idAddress
     * @return
     */
    UserVO userLogin(String phone, String password, String idAddress);

    /**
     * 分页用户列表
     * @param loginId
     * @return
     */
    Page<UserVO> listUserVOByPage(long loginId);

    /**
     * 根据 id 获取脱敏用户信息
     * @param userId
     * @param loginId
     * @return
     */
    UserVO getUserVOById(long userId, long loginId);

    /**
     * 修改用户信息
     * @param userId
     * @param username
     * @param email
     * @param phone
     * @return
     */
    UserVO updateUser(long userId, String username, String email, String phone);

    /**
     * 用户重置密码
     * @param loginId
     * @return
     */
    List<Long> userResetPwd(long loginId);
}
